const path = require('path');
const fs = require('fs');
const http = require('http');
const server = http.createServer();

server.listen(3001, () => {
    console.log('启动服务器')
});
server.on('request', (req, res) => {
    let url = req.url;
    let method = req.method;

    if (url === '/api/getbooks' && method === 'GET') {
        // 满足这两个条件，表示要去获取所有书籍
        // 首先获取书籍信息
        let book = require(path.join(__dirname, 'books.json'));
        //设置请求头
        res.setHeader('Content-Type', 'application/json; charset=utf-8');
        // 设置响应头，解决跨域问题
        // CORS方案，跨域资源共享。是解决跨域的最好的办法。
        // res.setHeader('Access-Control-Allow-Origin', 'https://www.baidu.com');
        let result = {
            status: 0,
            message: '获取如数信息成功',
            data: JSON.parse(book)
        };
        res.end(JSON.stringify(result));
    } else if (method === 'GET' && url.startsWith('/api/delbook')) {
        // 满足这个条件，说明客户端希望删除一本书
        // 先读取书籍信息
        let books = require(path.join(__dirname, 'books.json')); // 得到一个JS数组
        // 1. 获取id
        let id = req.url.replace(/\D/g, '');
        // console.log(id); // 字符串类型的数字
        // 2. 删除一本书
        // console.log(req.url); // /api/delbook?id=2
        // filter方法，是一个数组方法，它根据条件来过滤结果；会把满足条件的留下；不满足条件的过滤掉
        let result = books.filter(item => item.id != id);
        // console.log(result);
        res.setHeader('Content-Type', 'application/json; charset=utf-8');
        // 把过滤后的结果，存放到books.json中即可
        fs.writeFile(path.join(__dirname, 'books.json'), JSON.stringify(result), err => {
            if (err) {
                console.log(err);
                res.end(JSON.stringify({ status: 400, msg: '删除失败' }));
            } else {
                res.end(JSON.stringify({ status: 200, msg: '删除成功' }));
            }
        });

    } else if (method === 'POST' && url === '/api/addbook') {
        // 满足这个条件，说明客户端希望添加一本书
    } else {
        // 说明客户端写错了，请求了一个不存在的接口
        res.writeHead(404, {
            'Content-Type': 'text/html; charset=utf-8'
        });
        res.end('小朋友，你走错路了');
    }
});